package 多线程高并发.创建并启动线程;
/**
 * 多个线程同时访问同一个资源的时候，需要对一个资源进行上锁
 * 访问同一个代码或者临界区的时候
 * 同一个资源假如是累加方法，原数据是；当线程1调用原始数据然后进行加一，但是在线程一调用完成后还没有将数据写会的时候线程二也拿到了方法
 * 然后获得的数据是0，也进行累加并且写会。这样的话正常情况下两个线程结束后累加里面的数据应该是2，但是这样的结果最后的结果是1，一次需要经过加锁来解决
 *
 * */
public class Synchronized {
    private int count=10;
    private Object o=new Object();

    public void m(){
        synchronized (o){
            count--;
            System.out.println(Thread.currentThread().getName()+"count ="+count);
        }
    }

    public synchronized void n(){//锁上这个方法比上面的简便，不用new Object();

    }
}
